package com.erp.shop.service;

import com.erp.shop.domain.bo.ErpSellerStoreEmpowerBo;
import com.erp.shop.domain.dto.ErpSellerStoreSelfEvaluationDto;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.oldPage.TableDataInfo;
import com.ruoyi.shop.api.domain.ErpSellerStoreEmpower;
import com.ruoyi.shop.api.domain.vo.ErpSellerStoreEmpowerVo;

import java.util.Collection;
import java.util.List;

/**
 * 卖家店铺授权Service接口
 *
 * @author erp
 * @date 2023-03-24
 */
public interface IErpSellerStoreEmpowerService {


    /**
     * 自运营公司刷单
      * @param page
     * @param dto
     * @return
     */
    TableDataInfo<ErpSellerStoreSelfEvaluationDto> getSelfOperationEvaluation(PageQuery page, ErpSellerStoreSelfEvaluationDto dto);

    /**
     * 查询卖家店铺授权
     */
    ErpSellerStoreEmpowerVo queryById(Long id);

    /**
     * 查询卖家店铺授权列表
     */
    TableDataInfo<ErpSellerStoreEmpowerVo> queryPageList(ErpSellerStoreEmpowerBo bo, PageQuery pageQuery);

    /**
     * 查询卖家店铺授权列表
     */
    List<ErpSellerStoreEmpowerVo> queryList(ErpSellerStoreEmpowerBo bo);

    /**
     * 新增卖家店铺授权
     */
    Boolean insertByBo(ErpSellerStoreEmpowerBo bo);

    /**
     * 修改卖家店铺授权
     */
    Boolean updateByBo(ErpSellerStoreEmpowerBo bo);

    /**
     * 校验并批量删除卖家店铺授权信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    Long queryBySellerLoginId(String sellerLoginId);

    Long queryUserIdBySellerLoginId(String sellerLoginId);

    List<ErpSellerStoreEmpower> getEmpowerStore();

    /**
     * 根据账号获取店铺名
     */
    String getStoreNameByUserName(String storeUserName);

    ErpSellerStoreEmpower getEmpowerStoreByUserNick(String userNick);

    ErpSellerStoreEmpower queryByStoreId(Long storeId);

    /**
     * 根据店铺账户获取店铺信息
     * @param storeUserName (sellerLoginId)
     */
    ErpSellerStoreEmpower queryByStoreUserName(String storeUserName);

    Long getStoreIdByStoreUseName(String sellerLoginId);

    /**
     * 获取所有先用后付的店鋪
     * @return
     */
    List<String> getBehindErpPayStoreList();

    /**
     * 查询有效授权店铺信息
     * @param sellerLoginId
     * @return
     */
    ErpSellerStoreEmpower selectEmpowerByUserName(String sellerLoginId);

    /**
     * 查询所有店铺授权信息
     * @param sellerLoginId
     * @return
     */
    List<ErpSellerStoreEmpower> selectListByStoreUserName(String sellerLoginId);

    /**
     * 获取所有店铺(不加权限)
     */
    List<ErpSellerStoreEmpower> getAllStoreEmpower();

    boolean updateStorePassWord(String storeUserName, String storePassWord);

    R<Object> storeDiagnosis(Long storeId);

    List<ErpSellerStoreEmpower> getAutoStoreInfo();

    R<Object> getSellerStoreListByInfo(ErpSellerStoreEmpower storeEmpower);

    R<Object> selectEmpowerInUserName(List<String> collect);

    ErpSellerStoreEmpower getCompriseDeleteById(Long id);

    R<Object> bindShop(ErpSellerStoreEmpowerBo bo);

    R<Object> unbindShop(String storeUserName);

    R<Object> getNowStoreUserName();
}
